# _*_ coding: utf-8 _*_
"""
@ 时间    ：2024/10/25 15:04
@ 作者    ：旺财
@ 文件    ：08 多重共线性的分析与处理.py
@ 说明    ：   
"""
import pandas as pd
from statsmodels.stats.outliers_influence import variance_inflation_factor

df = pd.read_excel('数据.xlsx')
df.head()

X = df.drop(columns='Y')
Y = df['Y']

# 1.相关系数判断
print(X.corr())

# 2.方差膨胀因子法（VIF检验）
vif = [variance_inflation_factor(X.values, X.columns.get_loc(i)) for i in X.columns]
print(vif)

vif = []
for i in X.columns:  # i对应的是每一列的列名
    vif.append(variance_inflation_factor(X.values, X.columns.get_loc(i)))
print(vif)

X = df[['X1', 'X3']]
Y = df['Y']

vif = [variance_inflation_factor(X.values, X.columns.get_loc(i)) for i in X.columns]
print(vif)